package com.android.infantschool.model.mvp.model;

import com.android.infantschool.bean.AddJobBean;
import com.android.infantschool.bean.AppUpdateBean;
import com.android.infantschool.bean.AskForLeaveBean;
import com.android.infantschool.bean.AuthCodeBean;
import com.android.infantschool.bean.BabyClassPhotoBean;
import com.android.infantschool.bean.BabyFootBean;
import com.android.infantschool.bean.BabyInfoBean;
import com.android.infantschool.bean.BabyParentsBean;
import com.android.infantschool.bean.BabyRemarkBean;
import com.android.infantschool.bean.BabySyllabusBean;
import com.android.infantschool.bean.BeautifulTeacherBean;
import com.android.infantschool.bean.BindingQrCodeBean;
import com.android.infantschool.bean.ChangPswBean;
import com.android.infantschool.bean.ClockingBaseBean;
import com.android.infantschool.bean.ClockingLeaveBean;
import com.android.infantschool.bean.DynamicBean;
import com.android.infantschool.bean.HiddenManagerBean;
import com.android.infantschool.bean.HomeBannerBean;
import com.android.infantschool.bean.InfromBean;
import com.android.infantschool.bean.JobBean;
import com.android.infantschool.bean.LoginBean;
import com.android.infantschool.bean.ParentsBindingBean;
import com.android.infantschool.bean.PatriarchBean;
import com.android.infantschool.bean.ResponseBean;
import com.android.infantschool.bean.TelBookBean;
import com.android.infantschool.bean.TemperatureRecodeBean;
import com.android.infantschool.bean.ToViewBindingBean;

import java.util.Map;

import okhttp3.ResponseBody;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.QueryMap;
import rx.Observable;

/**
 * @author Administrator
 * @particulars
 * @time 2019\7\24 0024 8:51
 * @class describe
 */
public interface Api {

    /**
     * 1、用户登录
     *
     * @param map
     * @return
     */
    @GET("user/login.do")
    Observable<LoginBean> login(@QueryMap Map<String, String> map);

    /**
     * 2、获取短信验证码
     *
     * @param map
     * @return
     */
    @POST("user/getSMS.do")
    Observable<AuthCodeBean> getAuthCode(@QueryMap Map<String, String> map);

    /**
     * 3、用户修改密码
     *
     * @param map
     * @return
     */
    @POST("user/SMSupdatePwd.do")
    Observable<ChangPswBean> postChangPsw(@QueryMap Map<String, String> map);

    /**
     * 4、获取首页轮播图
     *
     * @param map
     * @return
     */
    @POST("user/getChatUrls.do")
    Observable<HomeBannerBean> getHomeBanner(@QueryMap Map<String, String> map);

    /**
     * 5、查询通讯录
     *
     * @param map
     * @return
     */
    @GET("baby/FindTelDir.do")
    Observable<TelBookBean> getTelBook(@QueryMap Map<String, String> map);

    /**
     * 6、获取课程表
     *
     * @param map
     * @return
     */
    @GET("findCourseWeek.do")
    Observable<BabySyllabusBean> getBabySyllabus(@QueryMap Map<String, String> map);

    /**
     * 7、上传课程表
     *
     * @param map
     * @return
     */
    @POST("insertCourseAPP.do")
    Observable<ResponseBean> postCurriculum(@QueryMap Map<String, String> map);

    /**
     * 8、获取宝宝评语
     *
     * @param map
     * @return
     */
    @GET("comment/selectNoComment.do")
    Observable<BabyRemarkBean> getBabyRemark(@QueryMap Map<String, String> map);

    /**
     * 9、添加宝宝评语
     *
     * @param map
     * @return
     */
    @POST("comment/add.do")
    Observable<ResponseBean> postAddRemark(@QueryMap Map<String, String> map);

    /**
     * 10、添加亲子作业
     *
     * @param map
     * @return
     */
    @POST("task/add.do")
    Observable<AddJobBean> postAddJob(@QueryMap Map<String, String> map);

    /**
     * 11、获取所有亲子作业
     *
     * @param map
     * @return
     */
    @GET("task/show.do")
    Observable<JobBean> getJob(@QueryMap Map<String, String> map);

    /**
     * 12、获取家长留言
     *
     * @param map
     * @return
     */
    @GET("feedback/get.do")
    Observable<PatriarchBean> getPatriarch(@QueryMap Map<String, String> map);

    /**
     * 13、获取班级相册
     *
     * @param map
     * @return
     */
    @GET("album/show.do")
    Observable<BabyClassPhotoBean> getBabyClassPhoto(@QueryMap Map<String, String> map);

    /**
     * 14、获取宝宝饮食
     *
     * @param map
     * @return
     */
    @POST("meal/getTheDayMeals.do")
    Observable<BabyFootBean> getBabyFoot(@QueryMap Map<String, String> map);

    /**
     * 15、考勤签到未到的学生列表
     * 1、签到:未签到
     * 2、签到:已签到
     * 3、签到:请假
     * 4、签退:未签退
     * 5、签退:已签退
     * 6、首页:宝宝测温
     * 7、首页:测温记录
     *
     * @param map
     * @return
     */
    @GET("baby/SignDao.do")
    Observable<ClockingBaseBean> getClockClockingNot(@QueryMap Map<String, String> map);

    /**
     * 16、获取宝宝信息
     *
     * @param map
     * @return
     */
    @GET("baby/searchBabyById.do")
    Observable<BabyInfoBean> getBabyInfo(@QueryMap Map<String, String> map);

    /**
     * 17、测温提交上传温度
     *
     * @param map
     * @return
     */
    @POST("examination/addTemperature.do")
    Observable<ResponseBean> postAddTemperature(@QueryMap Map<String, String> map);

    /**
     * 18、测温记录
     *
     * @param map
     * @return
     */
    @POST("examination/getExaminationMessage.do")
    Observable<TemperatureRecodeBean> postTemperatureRecode(@QueryMap Map<String, String> map);

    /**
     * 19、请求考勤接口
     *
     * @param map
     * @return
     */
    @POST("baby/attendance.do")
    Observable<ResponseBody> getClockingClocking(@QueryMap Map<String, String> map);

    /**
     * 20、请假接口
     *
     * @param map
     * @return
     */
    @GET("leave/search.do")
    Observable<ClockingLeaveBean> getClockLeave(@QueryMap Map<String, String> map);

    /**
     * 21、签退
     *
     * @param map
     * @return
     */
    @GET("baby/attendanceSignBack.do")
    Observable<ResponseBean> postSignOut(@QueryMap Map<String, String> map);

    /**
     * 22、请假审批
     *
     * @param map
     * @return
     */
    @POST("leave/ApprovalLeave.do")
    Observable<ResponseBean> postLeaveApprove(@QueryMap Map<String, String> map);

    /**
     * 23、发布动态
     *
     * @param map
     * @return
     */
    @POST("dynamic/add.do")
    Observable<ResponseBean> postDynamic(@QueryMap Map<String, String> map);

    /**
     * 24、获取动态列表
     *
     * @param map
     * @return
     */
    @GET("dynamic/list.do")
    Observable<DynamicBean> getDynamicList(@QueryMap Map<String, String> map);

    /**
     * 25、获取最美教师列表
     *
     * @param map
     * @return
     */
    @GET("employee/teacherStatis.do")
    Observable<BeautifulTeacherBean> getBeautifulTeacher(@QueryMap Map<String, String> map);

    /**
     * 26、获取家长列表
     *
     * @param map
     * @return
     */
    @GET("weixin/find_binding_baby.do")
    Observable<ParentsBindingBean> getParentsList(@QueryMap Map<String, String> map);

    /**
     * 27、获取家长绑定二维码
     *
     * @param map
     * @return
     */
    @GET("weixin/create_qr_code.do")
    Observable<BindingQrCodeBean> getBabyBindingQrCode(@QueryMap Map<String, String> map);

    /**
     * 28、教师请假调休
     *
     * @param map
     * @return
     */
    @GET("leave/teacherLeaveList.do")
    Observable<AskForLeaveBean> getAskForLeave(@QueryMap Map<String, String> map);

    /**
     * 29、查看已绑定的家长
     *
     * @param map
     * @return
     */
    @GET("weixin/list_binding_parents.do")
    Observable<ToViewBindingBean> getToViewBinging(@QueryMap Map<String, String> map);

    /**
     * 30、教师申请请假
     *
     * @param map
     * @return
     */
    @GET("leave/addTeacherLeave.do")
    Observable<ResponseBean> getLeave(@QueryMap Map<String, String> map);

    /**
     * 31、添加隐患
     *
     * @param map
     * @return
     */
    @POST("danger/inserDanger.do")
    Observable<ResponseBean> getAddHidden(@QueryMap Map<String, String> map);

    /**
     * 32、隐患管理列表
     *
     * @param map
     * @return
     */
    @GET("danger/selectDangerByKid.do")
    Observable<HiddenManagerBean> getHiddenManager(@QueryMap Map<String, String> map);

    /**
     * 33、提交通知内容
     *
     * @param map
     * @return
     */
    @POST("message/send_notice_to_parents.do")
    Observable<ResponseBean> postInfrom(@QueryMap Map<String, String> map);

    /**
     * 34、获取家长列表
     *
     * @param map
     * @return
     */
    @POST("weixin/find_binding_baby.do")
    Observable<BabyParentsBean> getBabyParents(@QueryMap Map<String, String> map);

    /**
     * 35、我发布的动态
     *
     * @param map
     * @return
     */
    @GET("message/list_teacher_have_send_notice.do")
    Observable<InfromBean> getReleaseInfrom(@QueryMap Map<String, String> map);

    /**
     * 36、上传头像
     *
     * @param map
     * @return
     */
    @POST("QiniuCallback/updateTeacherImg.do")
    Observable<ResponseBean> postHeader(@QueryMap Map<String, String> map);

    /**
     * 37、我收到的动态
     *
     * @param map
     * @return
     */
    @GET("message/list_teacher_have_send_notice.do")
    Observable<InfromBean> getReadInfrom(@QueryMap Map<String, String> map);

    /**
     * 38、获取关于我们数据
     *
     * @param map
     * @return
     */
    @GET("user/sys/getAboutUs.do")
    Observable<ResponseBean> getAbout(@QueryMap Map<String, String> map);

    /**
     * 39、提交反馈信息
     *
     * @param map
     * @return
     */
    @POST("bug/addSysBug.do")
    Observable<ResponseBean> postFeedBack(@QueryMap Map<String, String> map);

    /**
     * 40、获取关于我们数据
     *
     * @param map
     * @return
     */
    @GET("user/sys/getsysNotice.do")
    Observable<ResponseBean> getSystemNotice(@QueryMap Map<String, String> map);

    /**
     * 41、获取app最新版本
     *
     * @param map
     * @return
     */
    @GET("user/sys/Systemupgrade.do")
    Observable<AppUpdateBean> getAppUpdate(@QueryMap Map<String, String> map);
}